require "Common/define"

BGCtrl={};
local this=BGCtrl;
local transform;
local gameObject;
local lua;

--你可以把它理解为构造函数，但其实与C#的构造函数还是不同的，它需要被调用
--具体调用可以参考CtrlManager.Init()方法
function BGCtrl.New(  )
	--这个引用其实是被CtrlManager.Init()中的某个对象指向了
	return this;
end

function BGCtrl.Awake(  )
	--创建面板，当它创建的时候，会自动为面板添加LuaBehaviour组件
	--LuaBehaviour又会根据当前面板名称，调用xxxPanel.lua这个脚本
	--的Awake和Start方法
	--具体可以查看LuaBehaviour.cs这个脚本
	--为了它能够调用(BG)xxxPanel方法，所以这里的名称一定要与(BG)xxx一致
	--同时这个参数也是用于加载ab(assetbundle)文件的，具体可以
	--参考PanelManager.cs脚本的第27行
	--它先转化为小写，再加上AppConst.ExtName的设置，就等于ab的名称
	panelMgr:CreatePanel('BG',this.OnCreate);
	--所以，这里创建后的面板名称为：BGPanel
	--所以，这里创建后加载的ab名称为bg.unity3d
end

function BGCtrl.OnCreate( obj )
	gameObject=obj;
	transform=obj.transform;
	--添加点击事件
	lua=transform:GetComponent('LuaBehaviour');
	lua:AddClick(BGPanel.btnObj,this.OnClick);
end

b=true;

function BGCtrl.OnClick( go )
	print("点击了按钮，设置精灵组件的状态");

	--每次点击都执行以下这段代码，表示：
	--先判断b的值，然后设置为相反，把Image组件的状态设置=b
	if b==true then
		b=false;
		BGPanel.image.enabled=b;
	else
		b=true;
		BGPanel.image.enabled=b;
	end
end